package com.huike.clues.domain;

import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.huike.common.annotation.Excel;
import com.huike.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 商机;对象 hk_business
 *
 * @author ruoyi
 * @date 2024-07-08
 */
@Data
public class HkBusiness extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商机id */
    private Long id;

    /** 部门关联表 */
    @Excel(name = "部门关联表")
    private Long deptId;

    /** 负责人id */
    @Excel(name = "负责人id")
    private Long staffId;

    /** 商机的用户名 */
    @Excel(name = "商机的用户名")
    private String name;

    /** 商机用户的手机号 */
    @Excel(name = "商机用户的手机号")
    private String phone;

    /** 意向的学科（1.java，2.前端，3.人工智能，4.大数据，5.Python，6.测试，7.新媒体，8.产品经理，9.UI设计） */
    @Excel(name = "意向的学科", readConverterExp = "1=.java，2.前端，3.人工智能，4.大数据，5.Python，6.测试，7.新媒体，8.产品经理，9.UI设计")
    private Long subject;

    /** 其他意向 */
    @Excel(name = "其他意向")
    private String otherIntention;

    /** 负责员工的姓名 */
    @Excel(name = "负责员工的姓名")
    private String owner;

    /** 商机状态(0.待跟进，1.跟进中) */
    @Excel(name = "商机状态(0.待跟进，1.跟进中)")
    private Long businesStatu;

    /** 商机用户的性别（0.男，1.女） */
    @Excel(name = "商机用户的性别", readConverterExp = "0=.男，1.女")
    private Long sex;

    /** 商机用户微信 */
    @Excel(name = "商机用户微信")
    private String weixin;

    /** 商机用户QQ */
    @Excel(name = "商机用户QQ")
    private String qq;

    /** 商机用户的年龄 */
    @Excel(name = "商机用户的年龄")
    private Long age;

    /** 省 */
    @Excel(name = "省")
    private String provinces;

    /** 市 */
    @Excel(name = "市")
    private String city;

    /** 学习原因 */
    @Excel(name = "学习原因")
    private String reasons;

    /** 商业计划 */
    @Excel(name = "商业计划")
    private String plan;

    /** 意向金额 */
    @Excel(name = "意向金额")
    private Long interestAmount;

    /** 意向课程 */
    @Excel(name = "意向课程")
    private Integer courseId;

    /** 当前薪资（1. 1k-3k,2. 3k-6k,3. 6k-10k 4. 10k-15k 5. 15k-20k 6. 20k+） */
    @Excel(name = "当前薪资", readConverterExp = "1=.,1=k-3k,2.,3=k-6k,3.,6=k-10k,4=.,1=0k-15k,5=.,1=5k-20k,6=.,2=0k+")
    private Long salary;

    /** 目标薪资（1. 1k-3k,2. 3k-6k,3. 6k-10k 4. 10k-15k 5. 15k-20k 6. 20k+） */
    @Excel(name = "目标薪资", readConverterExp = "1=.,1=k-3k,2.,3=k-6k,3.,6=k-10k,4=.,1=0k-15k,5=.,1=5k-20k,6=.,2=0k+")
    private Long expectedSalary;

    /** 在职情况（1.待业,2.在职,3.已离职） */
    @Excel(name = "在职情况", readConverterExp = "1=.待业,2.在职,3.已离职")
    private Long job;

    /** 渠道来源（1.推荐介绍，2.其他） */
    @Excel(name = "渠道来源", readConverterExp = "1=.推荐介绍，2.其他")
    private Long source;

    /** 学历（1.小学,2.初中,3.高中,4.中专,5.大专,6.本科,7.研究生,8.博士9.其他） */
    @Excel(name = "学历", readConverterExp = "1=.小学,2.初中,3.高中,4.中专,5.大专,6.本科,7.研究生,8.博士9.其他")
    private Long education;

    /** 职业（1.无,2.技术,3.产品,4.设计,5.运营,6.市场,7.人事/财务行政,8.销售,9.传媒,10.金融,11.教育培训,12.医疗健康,13.房地产/建筑,14.供应商/物流,15.采购/贸易,16.咨询/翻译/法律,17.旅游,18.生成制作,19.其他） */
    @Excel(name = "职业", readConverterExp = "1=.无,2.技术,3.产品,4.设计,5.运营,6.市场,7.人事/财务行政,8.销售,9.传媒,10.金融,11.教育培训,12.医疗健康,13.房地产/建筑,14.供应商/物流,15.采购/贸易,16.咨询/翻译/法律,17.旅游,18.生成制作,19.其他")
    private Long occupation;

    /** 专业（1.哲学,2.经济学,3.法学,4.教育学,5.文学,6.历史学,7.理学,8.工学,9.农学,10.医学,11.管理学,12.艺术学） */
    @Excel(name = "专业", readConverterExp = "1=.哲学,2.经济学,3.法学,4.教育学,5.文学,6.历史学,7.理学,8.工学,9.农学,10.医学,11.管理学,12.艺术学")
    private Long major;

    /** 人员状态（0.线索，1.商机，2.客户，3.线索池，4.公海） */
    @Excel(name = "人员状态", readConverterExp = "0=.线索，1.商机，2.客户，3.线索池，4.公海")
    private Long status;

    /** 时间计划 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "时间计划", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planTime;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /** 更新人 */
    @Excel(name = "更新人")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;

    /** 返回的原因 */
    @Excel(name = "返回的原因")
    private Long rejectReason;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setStaffId(Long staffId)
    {
        this.staffId = staffId;
    }

    public Long getStaffId()
    {
        return staffId;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }
    public void setSubject(Long subject)
    {
        this.subject = subject;
    }

    public Long getSubject()
    {
        return subject;
    }
    public void setOtherIntention(String otherIntention)
    {
        this.otherIntention = otherIntention;
    }

    public String getOtherIntention()
    {
        return otherIntention;
    }
    public void setOwner(String owner)
    {
        this.owner = owner;
    }

    public String getOwner()
    {
        return owner;
    }
    public void setBusinesStatu(Long businesStatu)
    {
        this.businesStatu = businesStatu;
    }

    public Long getBusinesStatu()
    {
        return businesStatu;
    }
    public void setSex(Long sex)
    {
        this.sex = sex;
    }

    public Long getSex()
    {
        return sex;
    }
    public void setWeixin(String weixin)
    {
        this.weixin = weixin;
    }

    public String getWeixin()
    {
        return weixin;
    }
    public void setQq(String qq)
    {
        this.qq = qq;
    }

    public String getQq()
    {
        return qq;
    }
    public void setAge(Long age)
    {
        this.age = age;
    }

    public Long getAge()
    {
        return age;
    }
    public void setProvinces(String provinces)
    {
        this.provinces = provinces;
    }

    public String getProvinces()
    {
        return provinces;
    }
    public void setCity(String city)
    {
        this.city = city;
    }

    public String getCity()
    {
        return city;
    }
    public void setReasons(String reasons)
    {
        this.reasons = reasons;
    }

    public String getReasons()
    {
        return reasons;
    }
    public void setPlan(String plan)
    {
        this.plan = plan;
    }

    public String getPlan()
    {
        return plan;
    }
    public void setIntendedAmount(Long interestAmount)
    {
        this.interestAmount = interestAmount;
    }

    public Long getIntendedAmount()
    {
        return interestAmount;
    }
    public void setCourseId(Integer courseId)
    {
        this.courseId = courseId;
    }

    public Integer getCourseId()
    {
        return courseId;
    }
    public void setSalary(Long salary)
    {
        this.salary = salary;
    }

    public Long getSalary()
    {
        return salary;
    }
    public void setExpectedSalary(Long expectedSalary)
    {
        this.expectedSalary = expectedSalary;
    }

    public Long getExpectedSalary()
    {
        return expectedSalary;
    }
    public void setJob(Long job)
    {
        this.job = job;
    }

    public Long getJob()
    {
        return job;
    }
    public void setSource(Long source)
    {
        this.source = source;
    }

    public Long getSource()
    {
        return source;
    }
    public void setEducation(Long education)
    {
        this.education = education;
    }

    public Long getEducation()
    {
        return education;
    }
    public void setOccupation(Long occupation)
    {
        this.occupation = occupation;
    }

    public Long getOccupation()
    {
        return occupation;
    }
    public void setMajor(Long major)
    {
        this.major = major;
    }

    public Long getMajor()
    {
        return major;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setPlanTime(Date planTime)
    {
        this.planTime = planTime;
    }

    public Date getPlanTime()
    {
        return planTime;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreatedTime(LocalDateTime createdTime)
    {
        this.createdTime = createdTime;
    }

    public LocalDateTime getCreatedTime()
    {
        return createdTime;
    }
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy()
    {
        return updatedBy;
    }
    public void setUpdatedTime(LocalDateTime updatedTime)
    {
        this.updatedTime = updatedTime;
    }

    public LocalDateTime getUpdatedTime()
    {
        return updatedTime;
    }
    public void setRejectReason(Long rejectReason)
    {
        this.rejectReason = rejectReason;
    }

    public Long getRejectReason()
    {
        return rejectReason;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("deptId", getDeptId())
                .append("staffId", getStaffId())
                .append("name", getName())
                .append("phone", getPhone())
                .append("subject", getSubject())
                .append("otherIntention", getOtherIntention())
                .append("owner", getOwner())
                .append("businesStatu", getBusinesStatu())
                .append("sex", getSex())
                .append("weixin", getWeixin())
                .append("qq", getQq())
                .append("age", getAge())
                .append("provinces", getProvinces())
                .append("city", getCity())
                .append("remark", getRemark())
                .append("reasons", getReasons())
                .append("plan", getPlan())
                .append("intendedAmount", getIntendedAmount())
                .append("courseId", getCourseId())
                .append("salary", getSalary())
                .append("expectedSalary", getExpectedSalary())
                .append("job", getJob())
                .append("source", getSource())
                .append("education", getEducation())
                .append("occupation", getOccupation())
                .append("major", getMajor())
                .append("status", getStatus())
                .append("planTime", getPlanTime())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("updatedBy", getUpdatedBy())
                .append("updatedTime", getUpdatedTime())
                .append("rejectReason", getRejectReason())
                .toString();
    }
}
